import { Toast,Dialog } from "vant";
import moment from 'moment'
moment.locale('zh-cn')

export const checkMobile = phone =>{
    const myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
    if (!myreg.test(phone)) {
        return false;
    } else {
        return true;
    }
}

export const toast = (message,position="top")=>{
    Toast({message,position});
}

export const confirm = (title,message,callback,options={showCancelButton:false},) =>{
    Dialog.confirm({
        ...options,
        title,
        message
    })
    .then(()=>{
        callback && callback(true)
    })
    .catch(()=>{
        callback && callback(false)
    })
}

export const loading = {
    open:(text,time)=>{
        Toast.clear()
        Toast.loading({
            message: text || '', // 加载中...
            duration:time || 0,
            forbidClick: true,
        });      
    },
    close:()=>{
        Toast.clear()
    }
}

// moment--相关方法
export const mt = {
    curDateToymd:value=>{  // 获取当前日期
        if(!value) return ''
        return moment(value).format('YYYY-MM-DD')
    },
    // 格式化(如：2020-04-08T09:31:55.313Z)，返回日期
    timestampToDate:value=>{
        if(!value) return ''
        return moment(value).format('YYYY-MM-DD dddd')
    },
    // 时间戳转化为长时间时间
    timestampTodatetime1:value=>{
        if(!value) return ''
        return moment(value).format('YYYY-MM-DD HH:mm')
    },
    // 时间戳转化为长时间时间
    timestampTodatetime2:value=>{
        if(!value) return ''
        return moment(value).format('YYYY-MM-DD HH:mm:ss')
    },
    // 返回时分
    dateToms:value=>{
        if(!value) return ''
        return moment(value).format('HH:mm')
    },
    // 返回月日
    dateTomy:value=>{
        if(!value) return ''
        return moment(value).format("MMMDo")
    },
    //比较大小
    diff:(date1,date2=new Date(),type='minutes')=>{
        if(!date1) return ''
        const diff = moment(date1).diff(moment(date2), type)  
        return diff    ////diff>0时: date1>date2
    },
    dateFormat:(date)=>{
        if(!date) return ''
            const currentDate=new Date()  // 当前时间
            const tomorrow = moment().add(1, 'days').format('YYYY-MM-DD')  // 明天
            const afterTomorrow = moment().add(2, 'days').format('YYYY-MM-DD')  // 后天
            
            const diff = moment(date).diff(moment(currentDate), 'minutes')  //与当前时间比较， diff>0时: date>currentDate (单位为分钟) 

            const diff1 = moment(date).diff(moment(`${moment().format('YYYY-MM-DD')} 23:59:59`), 'minutes') // 与今天晚上12点比较
            const diff2 = moment(date).diff(moment(`${tomorrow} 23:59:59`), 'minutes') // 与明天晚上12点比较，
            const diff3 = moment(date).diff(moment(`${afterTomorrow} 23:59:59`), 'minutes')// 与后天晚上12点比较，
            //console.log(`diff:${diff},diff1:${diff1},diff2:${diff2},diff3:${diff3}`)
            if(diff>0 && diff1<=0){
                return `今天 ${moment(date).format('HH:mm')}`
            }else if(diff1>0 && diff2<=0){
                return `明天 ${moment(date).format('HH:mm')}`
            }else if(diff2>0 && diff3<=0){
                return `后天 ${moment(date).format('HH:mm')}`
            }else{
                return moment(date).format('MM-DD HH:mm')  // 直接返回日期格式化
            } 
    },
    addDate:(date,num,type='hours')=>{
        if(num>0){
            return moment(date).add(num, type).format('YYYY-MM-DD HH:mm:ss')
        }else if(num<0){
            return moment(date).subtract(Math.abs(num), type).format('YYYY-MM-DD HH:mm:ss')
        }else{
            return date
        }
    }
}

/**
 * H5调用原生app方法
 * @param {*} appFn APP提供的方法名称
 * @param {*} params 向appFn传递的参数
 */
 export const H5CallAPPFuction = (appFn,params='')=>{
    let u = navigator.userAgent
    let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 // android终端或者uc浏览器
    let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
    if (isAndroid) {
        window.Android[appFn](params) 
    } else if (isiOS) {
        window.webkit.messageHandlers[appFn].postMessage(params)
    }else{
        alert("h5 to app error no terminal")
    }
}


export const base64toFile = (dataurl,filename='file') =>  {
    let arr = dataurl.split(',');
    let mime = arr[0].match(/:(.*?);/)[1];
    let suffix = mime.split('/')[1];
    let bstr = atob(arr[1]);
    let n = bstr.length;
    let u8arr = new Uint8Array(n);
    while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], `${filename}.${suffix}`, {
       type: mime
    });
}

/**
 * 合并对象，只保留相同属性
 * @param {Object} target  目标对象
 * @param {Object} newObj  需要替换目标对象值的对象
 */
 export function mergeObject(target,newObj){
	for(let key in target){
		if(newObj[key]){
			target[key] = newObj[key]
		}	
	}
	return target
}

/**
 * 过滤掉对象属性值为空的属性
 * @param {*} target 
 * @returns 
 */
export function filterEmptyProp(target){
	for(let key in target){
		if(target[key]==0){

		}else if(!target[key]){ 
			delete target[key]  // 删除属性
		}	
	}
	return target
}





